Entity Framework Core (EF Core) হলো .NET Core-এর জন্য একটি ওপেন সোর্স ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক, যা ডেটাবেসে অবজেক্ট এবং ডেটা টেবিলের মধ্যে সম্পর্ক তৈরি এবং পরিচালনা করতে ব্যবহৃত হয়। EF Core ডেটাবেস পরিচালনা সহজ এবং কার্যকরী করে, এবং ডেভেলপারদের SQL কোড লেখার পরিবর্তে C# কোড ব্যবহার করে ডেটাবেস অপারেশন করতে সহায়তা করে।
EF Core আপনাকে ডেটাবেসের সাথে যোগাযোগ করতে LINQ (Language Integrated Query) ব্যবহার করে ডেটা কুয়েরি করতে দেয় এবং এতে Code First এবং Database First দুটি অ্যাপ্রোচ ব্যবহারের সুবিধা রয়েছে।
EF Core ডেটাবেসের সাথে যোগাযোগ করতে DbContext এবং DbSet ক্লাস ব্যবহার করে। DbContext হলো EF Core-এর প্রধান ক্লাস, যা ডেটাবেসের টেবিলগুলির সাথে যোগাযোগ স্থাপন করে এবং DbSet হলো একটি ডেটাবেস টেবিলের প্রতিনিধিত্বকারী কনটেইনার ক্লাস।
DbContext হলো EF Core-এর মাধ্যমে ডেটাবেস অপারেশন পরিচালনা করা ক্লাস। এটি ডেটাবেসের টেবিলগুলোর সাথে সম্পর্কযুক্ত ক্লাসগুলির ডেটাকে ম্যানেজ করে।
DbSet হলো ডেটাবেসের টেবিলের প্রতিনিধিত্বকারী ক্লাস, যেখানে আপনি ডেটার CRUD (Create, Read, Update, Delete) অপারেশন করতে পারেন।
EF Core সেটআপ করার জন্য আপনাকে প্রথমে NuGet প্যাকেজ ইনস্টল করতে হবে এবং কিছু কনফিগারেশন করতে হবে।
EF Core ব্যবহারের জন্য আপনাকে আপনার ASP.NET Core প্রজেক্টে EF Core প্যাকেজ ইনস্টল করতে হবে। আপনি NuGet Package Manager বা Command Line ব্যবহার করে এই প্যাকেজ ইনস্টল করতে পারেন।
Command Line ব্যবহার করে EF Core ইনস্টল করা:
ডটনেট ডাটাবেসের সাথে সংযোগ স্থাপনের জন্য ডাটাবেস প্রোভাইডারের প্যাকেজ ইনস্টল করতে হবে, যেমন SQL Server:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
ডেটাবেস মাইগ্রেশন পরিচালনার জন্য Tools প্যাকেজ ইনস্টল করতে হবে:
dotnet add package Microsoft.EntityFrameworkCore.Tools
EF Core ব্যবহারের জন্য প্রথমে একটি DbContext ক্লাস তৈরি করতে হবে, যা ডেটাবেসের টেবিলগুলোর সাথে সম্পর্ক স্থাপন করবে।
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
এখানে, Products
হলো ডেটাবেসের টেবিলের প্রতিনিধিত্বকারী একটি DbSet
যা Product
ক্লাসের উপর ভিত্তি করে তৈরি হয়েছে।
ডেটাবেসের টেবিলের প্রতিনিধিত্ব করার জন্য একটি মডেল ক্লাস তৈরি করতে হবে। উদাহরণস্বরূপ, Product
ক্লাস:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
এখানে, Product
ক্লাস একটি টেবিলের প্রতিনিধিত্ব করছে, যেখানে Id
, Name
, এবং Price
হলো টেবিলের কলাম।
এখন DbContext ক্লাসটি কনফিগার করতে হবে, যা Startup.cs
ফাইলে করা হয়।
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
এখানে, UseSqlServer
মেথডের মাধ্যমে SQL Server ব্যবহার করা হয়েছে এবং কনফিগারেশন ফাইলে থাকা DefaultConnection কনেকশন স্ট্রিং ব্যবহার করা হয়েছে।
ডেটাবেসের স্কিমা তৈরি করতে Entity Framework Core মাইগ্রেশন ব্যবহার করতে হবে। এটি ডেটাবেসের কাঠামো পরিবর্তন করতে সহায়ক।
প্রথমে মাইগ্রেশন তৈরি করুন:
dotnet ef migrations add InitialCreate
তারপর ডেটাবেস আপডেট করুন:
dotnet ef database update
এটি ডেটাবেসের স্কিমা তৈরি করবে এবং প্রথম মাইগ্রেশন চালাবে।
EF Core দিয়ে ডেটাবেসে CRUD অপারেশন করতে DbContext এবং DbSet ব্যবহার করা হয়। উদাহরণস্বরূপ, নতুন Product
তৈরি করা:
using (var context = new ApplicationDbContext())
{
var product = new Product
{
Name = "Laptop",
Price = 1000
};
context.Products.Add(product);
context.SaveChanges();
}
এখানে, Add
মেথডের মাধ্যমে একটি নতুন Product
ডেটাবেসে যোগ করা হয়েছে এবং SaveChanges()
মেথডের মাধ্যমে ডেটাবেসে পরিবর্তন সেভ করা হয়েছে।
EF Core .NET Core অ্যাপ্লিকেশন ডেভেলপমেন্টে ডেটাবেস অপারেশন এবং ম্যানেজমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ একটি টুল। এটি ডেভেলপারদের জন্য ডেটাবেস ম্যানেজমেন্ট সহজ এবং কার্যকরী করে তোলে।
common.read_more